package wiki.xsx.core.snowflake.config;

/**
 * 雪花模式
 * <p>可部署的服务越多，耗时越长；可部署的服务越少，耗时越短</p>
 * <p>FAST: 可部署服务数为256</p>
 * <p>QUICK: 可部署服务数为512</p>
 * <p>NORMAL: 可部署服务数为1024</p>
 * <p>MORE: 可部署服务数为2048</p>
 * <p>MAX: 可部署服务数为4096</p>
 * @author xsx
 * @date 2022/5/26
 * @since 1.8
 */
public enum SnowflakeMode {

    /**
     * 最快（数据位3位）
     */
    FAST(7L),
    /**
     * 较快（数据位4位）
     */
    QUICK(15L),
    /**
     * 正常（数据位5位）
     */
    NORMAL(31L),
    /**
     * 较多（数据位6位）
     */
    MORE(63L),
    /**
     * 最多（数据位7位）
     */
    MAX(127L);

    /**
     * 数量
     */
    private final Long count;

    /**
     * 有参构造
     * @param count 数量
     */
    SnowflakeMode(Long count) {
        this.count = count;
    }

    /**
     * 获取数量
     * @return 返回数量
     */
    public Long getCount() {
        return this.count;
    }
}
